Method for color saturation adjustment in an RGB color system

ABSTRACT

The present invention relates to a method for adjusting the saturation levels of the pixels of a time varying image being represented by RGB color sample vectors {right arrow over (C)} in an RGB color system. The method does not require the RGB color sample vectors {right arrow over (C)} to be converted into YUV samples in order to subsequently perform saturation adjustment. The method includes steps of: decomposing an RGB color sample vector {right arrow over (C)} into a white vector {right arrow over (w)} and a color tone vector {right arrow over (C)} T ; obtaining a saturation adjusted color tone vector {right arrow over (C T   o )} by multiplying the color tone vector {right arrow over (C)} T  by a saturation adjustment parameter; obtaining a saturation adjusted RGB color sample vector {right arrow over (C)} o  by adding the white vector {right arrow over (w)} and the saturation adjusted color tone vector {right arrow over (C T   o )}; and using the saturation adjusted RGB color sample vector {right arrow over (C)} o  to represent a color pixel of an output image.

BACKGROUND OF THE INVENTION

[0001] Field of the Invention

[0002] The present invention relates to a method for adjusting the saturation levels of the pixels of a time varying image being represented using RGB signals in an RGB color system. The method does not require the RGB signals to be converted into YUV signals in order to subsequently perform saturation adjustment. Hence, the associated H/W complexity required to perform the inventive method is low when compared to that required to perform the typical saturation level adjusting method.

[0003] The luminance and chromatic component Y, U, V color system, also known as the luminance and color difference color system (Y,R−Y,B−Y) is the color system that is most widely used in video systems. For example, in a digital TV system, the Y, U, and V signals of a video are compressed and transmitted. In such a system, since the color information is embedded in the chroma signals U and V, the color saturation level is simply adjusted by multiplying the chroma signals U and V by a color saturation adjusting gain a as expressed by the following equations:

U _(o) =α·U and V _(o) =α·V.

[0004] U_(o) and V_(o) now represent color adjusted chroma signals. FIG. 1 is a block diagram of a prior art color saturation adjusting circuit 10 that can be used to multiply the sample values of the chroma signals U and V by the color saturation adjusting gain α. Note that if the color saturation adjusting gain α=0, the resulting sample value will have no color. If the color saturation adjusting gain α>1, then the color of the resulting sample value will be enriched.

[0005] In a prior art RGB color system, color saturation adjustment is performed using the color saturation adjustment circuit 12 shown in FIG. 2. Each RGB input sample vector is converted to a YUV sample value, and the color saturation adjusting method shown in FIG. 1 is performed on each YUV sample value. The output color saturation adjusted RGB sample vectors are then obtained by converting the Y₀, U₀,V color sample values to RGB color sample vectors. As can be seen, considerable computation is required for the conversions.

SUMMARY OF THE INVENTION

[0006] It is accordingly an object of the invention to provide a method for color saturation adjustment in an RGB color system which does not require the RGB color sample vectors to be converted into luminance and chroma samples in order to adjust the saturation levels of the RGB color sample vectors.

[0007] With the foregoing and other objects in view there is provided, in accordance with the invention, a method for adjusting a color saturation level of at least one color pixel of an input image obtained from a time varying RGB video signal. The method includes steps of: obtaining an RGB color sample vector {right arrow over (C)} representing the color pixel of the input image obtained from the time varying RGB video signal; decomposing the RGB color sample vector {right arrow over (C)} into a white vector w and a color tone vector {right arrow over (C)}_(T); obtaining a saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} by multiplying the color tone vector {right arrow over (C)}_(T) by a saturation adjustment parameter; obtaining a saturation adjusted RGB color sample vector {right arrow over (C)}_(o) by adding the white vector {right arrow over (w)} and the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}; and using the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) to represent a color pixel of an output image.

[0008] In accordance with an added feature of the invention, the saturation adjustment parameter is constructed such that the saturation level of the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} will not exceed a predetermined limit value.

[0009] In accordance with an additional feature of the invention, the saturation adjustment parameter is constructed as a color saturation adjusting gain α, and it is ensured that when the color saturation adjusting gain α equals zero, the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) becomes a gray value. This is accomplished by performing the following additional steps: a luminance vector {right arrow over (Y)} is defined where each component of the luminance vector {right arrow over (Y)} is a luminance value obtained from the RGB color sample vector {right arrow over (C)}; the saturation adjustment parameter is configured to include at least a color saturation adjusting gain α; a gray mixing ratio α_(g) is obtained by selecting a minimum value from the group consisting of one and the color saturation adjusting gain α; and a gray level adjusted vector is obtained by multiplying the luminance vector {right arrow over (Y)} by a quantity obtained by subtracting the gray mixing ratio α_(g) from one. In addition, the step of obtaining the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) is performed by: before adding the white vector {right arrow over (w)} and the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}, multiplying the white vector {right arrow over (w)} by the gray mixing ratio α_(g); and when adding the white vector {right arrow over (w)}, which has been multiplied by the gray mixing ratio α_(g), and the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}, also adding thereto, the gray level adjusted vector to obtain the saturation adjusted RGB color sample vector {right arrow over (C)}_(o). The color saturation adjusting gain α can be manually obtained from an adjustment by a user of the color system, or can be automatically set by an appropriate circuit.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010]FIG. 1 is a block diagram of a prior art color saturation adjusting circuit;

[0011]FIG. 2 is a block diagram of a prior art color saturation adjusting circuit that is used in an RGB color system;

[0012]FIG. 3 shows a graphical representation of the decomposition of an RGB color sample vector into a white vector and a color tone vector;

[0013]FIG. 4 is a block diagram of a circuit for performing an example of a first embodiment of the method for color saturation adjustment;

[0014]FIG. 5 is a block diagram of a circuit for performing another example of the first embodiment of the method for color saturation adjustment;

[0015]FIG. 6 is a block diagram of a circuit for performing an example of a second embodiment of the method for color saturation adjustment;

[0016]FIG. 7 is a block diagram of a circuit for performing another example of the second embodiment of the method for color saturation adjustment;

[0017]FIG. 8 is a block diagram of two multipliers;

[0018]FIG. 9 is a block diagram of a circuit for performing a first embodiment of a method of calculating a saturation adjusted color tone vector {right arrow over (C_(T) ^(o))};

[0019]FIG. 10 is a block diagram of a circuit for performing a second embodiment of the method of calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))};

[0020] FIGS. 11-13 are graphs of mathematical functions;

[0021]FIG. 14 is a block diagram of a circuit for performing a third embodiment of the method of calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}; and

[0022]FIG. 15 is a flowchart showing the steps performed in a fourth embodiment of the method of calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0023] The following text uses a single digital RGB color sample vector {right arrow over (C)}=(R,G,B) to explain the invention. It should be readily apparent, however, that in a practical application, the inventive method will be applied to a plurality of digital RGB color sample vectors {right arrow over (C)} representing the images obtained from the time varying RGB video signals of an RGB color system.

[0024] The invention begins with decomposing a given digital RGB color input sample vector {right arrow over (C)}=(R,G,B) into two components according to the following equation:

{right arrow over (C)}={right arrow over (w)}+{right arrow over (C)} _(T.)  (1)

[0025] Here, {right arrow over (w)} represents a white vector and {right arrow over (C)}_(T)=(R_(T),G_(T),B_(T)) represents a color tone vector associated with the color input sample vector. The white vector {right arrow over (w)} presumably contains the lightness quantity and the color tone vector {right arrow over (C)}_(T)=(R_(T),G_(T),B_(T)) contains the color information. FIG. 3 shows a graphical representation of this decomposition. The range of the color samples is assumed to be 0≦R,G,B≦255, however, the invention can be used with color samples having any range. Note that the direction of the color tone vector {right arrow over (C)}_(T) is associated with the “hue”, while the magnitude of the color tone vector {right arrow over (C)}_(T) is associated with the “saturation”.

[0026] A first embodiment of the method for color saturation adjustment is based on applying the following equation:

{right arrow over (C)} _(o) ={right arrow over (w)}+P·{right arrow over (C)} _(T) ={right arrow over (w)}+{right arrow over (C _(T) ^(o))}.  (2a)

[0027] Here, P is a saturation adjustment parameter, which when multiplied against the color tone vector {right arrow over (C)}_(T), works to adjust the saturation of the color tone vector {right arrow over (C)}_(T). The vector P·{right arrow over (C)}_(T) represents a saturation adjusted color tone vector {right arrow over (C)}_(T) ^(o). The vector {right arrow over (C)}_(o) is a saturation adjusted RGB color sample vector, which can be output to represent a pixel of an output image.

[0028] Subsequently, in this text, four specific examples of methods are provided that can be used to obtain the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}. These methods differ in the specific form of the saturation adjustment parameter P that is used. The saturation adjustment parameter P can take the form of a color saturation adjusting gain α. This color saturation adjusting gain α can be obtained from the actions of a user of the system or from a circuit constructed to set the color saturation adjusting gain a. The saturation adjustment parameter P can alternatively include two factors, namely a color saturation adjusting gain a and a saturation limiting parameter β, which are multiplied together. In an additional alternative, the saturation adjustment parameter P can be a variable denoted by r. The saturation adjustment parameter P can also take the form of a real color adjusting gain x. The specific forms of the saturation adjustment parameter P will become clear with regard to further explanations provided later on in this text.

[0029] An example of the first embodiment of the method for color saturation adjustment will be further explained in a version in which the saturation adjustment parameter P takes the form of a color saturation adjusting gain α, where (α≧0). This example of the first embodiment of the method for color saturation adjustment will then be based on applying the following equation:

{right arrow over (C)} _(o) ={right arrow over (w)}+α·{right arrow over (C)} _(T) ={right arrow over (w)}+{right arrow over (C _(T) ^(o))}.  (2b)

[0030] In equation (2b), it can be seen that the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} equals α·{right arrow over (C)}_(T). Note that {right arrow over (C)}_(o)={right arrow over (w)} if α=0 (no color), {right arrow over (C)}_(o)={right arrow over (C)} when α=1, and the color saturation level is increased if α>1.

[0031]FIG. 4 shows a block diagram of a circuit 20 for performing the example of the first embodiment of the method for color saturation adjustment in which the saturation adjustment parameter P takes the form of a color saturation adjusting gain α. The white and color tone separator 22 decomposes the input color vector {right arrow over (C)}=(R,G,B) into a white vector {right arrow over (w)} and a color tone vector {right arrow over (C)}_(T)=(R_(T),G_(T),B_(T)) as described by equation (1). The saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} is obtained using the multiplier 24, which performs the operation {right arrow over (C)}_(T) ^(o)=α·{right arrow over (C)}_(T). The saturation adjusted RGB color sample vector {right arrow over (C)}_(o) is obtained from the vector summer 26, which adds the white vector {right arrow over (w)} and the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}.

[0032] The input color vector {right arrow over (C)}=(R,G,B) can be decomposed into a white vector {right arrow over (w)} and a color tone vector {right arrow over (C)}_(T)=(R_(T),G_(T),B_(T)) using any of a number of different decompositions. Although, the invention is not meant to be limited to any specific decomposition, the decomposition can be performed, for example, by using any of the following decompositions:

{right arrow over (C)} _(T)=(R−Y,G−Y,B−Y) and {right arrow over (w)}=(Y,Y,Y),

[0033] where Y is a luminance value;

{right arrow over (C)} _(T)=(R−X,G−X,B−X) and {right arrow over (w)}=(X,X,X),  (3) $\begin{matrix} {{{{{where}\quad X} = \frac{R + G + B}{3}};{and}}{{\overset{\rightarrow}{C}}_{T} = {\left( {{R - \frac{G + B}{2}},{G - \frac{R + B}{2}},{B - \frac{R + G}{2}}} \right)\quad {and}}}} & (4) \\ {\overset{\rightarrow}{w} = {\left( {\frac{G + B}{2},\frac{R + B}{2},\frac{R + G}{2}} \right).}} & (5) \end{matrix}$

[0034]FIG. 5 shows a block diagram of a circuit 30 for performing the first embodiment of the method in which the decomposition described in equation (3) is performed. The white vector calculation circuit 32 calculates a luminance value Y from the RGB color sample vector {right arrow over (C)} and constructs a white vector {right arrow over (w)}. Each component of the white vector {right arrow over (w)} is equal to the luminance value Y. The vector summer 34 subtracts the white vector {right arrow over (w)} from the RGB color sample vector {right arrow over (C)} to obtain the color tone vector {right arrow over (C_(T))}. The multiplier 36 multiplies the color tone vector {right arrow over (C_(T))} by the color saturation adjusting gain a to obtain the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}. The vector summer 38 adds the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} and the white vector {right arrow over (w)} to obtain the saturation adjusted RGB color sample vector {right arrow over (C)}_(o). It is assumed that the color saturation adjusting gain a is equal to or greater than zero.

[0035] Turning our attention to the case when the color saturation adjusting gain α=0 in equation (2b), note that the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) may not be a gray value depending on the choice of the color tone vector {right arrow over (C_(T))} or equivalently on the choice of the white vector {right arrow over (w)}. For instance, if we choose to use equation (3) for the decomposition, the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) will be (Y,Y,Y) when the color saturation adjusting gain α=0. This implies that the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) is a gray value. However, if we choose to use equation (4) for the decomposition, the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) will be (X,X,X) when α=0. In this case, the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) becomes a gray value, but it is somewhat different from the typical gray value denoted as Y. Furthermore, if we choose to use equation (4) for the decomposition, the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) will be $\left( {\frac{G + B}{2},\frac{R + B}{2},\frac{R + G}{2}} \right)$

[0036] when α=0, which is not a gray value, in general. In most cases, it is desirable to ensure that the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) becomes a gray value whose gradation level is associated with the luminance value of the input signal {right arrow over (C)}=(R,G,B) when α=0. For this purpose, a gray mixing ratio is defined as:

α_(g)=min(1.0,α)

[0037] A second embodiment of the method for color saturation adjustment is based on applying the following equation:

{right arrow over (C)} _(o) ={right arrow over (Y)}·(1−α_(g))+{right arrow over (w)}·α _(g) +P·{right arrow over (C)} _(T); or

{right arrow over (C)} _(o) ={right arrow over (Y)}·(1−α_(g))+{right arrow over (w)}·α _(g) +{right arrow over (C_(T) ^(o))}; where {right arrow over (Y)}=(Y,Y,Y).  (6a)

[0038] As with the first embodiment, P is the saturation adjustment parameter and {right arrow over (C_(T) ^(o))} is a saturation adjusted color tone vector. It should be clear that the second embodiment of the method for color saturation adjustment is equivalent to the first embodiment except for the fact that additional steps are performed. In particular, the gray mixing ratio α_(g) is multiplied with the white vector {right arrow over (w)} before the summation is performed, and the term {right arrow over (Y)}·(1−α_(g)) is included in the summation. The term {right arrow over (Y)}·(1−α_(g)) is defined as a gray level adjusted vector.

[0039] An example of the second embodiment of the method for color saturation adjustment will be further explained in a version in which the saturation adjustment parameter P takes the form of a color saturation adjusting gain α, where (α≧0). This example of the second embodiment of the method for color saturation adjustment will then be based on applying the following equation:

{right arrow over (C _(o))}=Y·(1−α_(g))+{right arrow over (w)}·α _(g) +α·{right arrow over (C)} _(T); where {right arrow over (Y)}=(Y,Y,Y).  (6b)

[0040] The saturation adjusted RGB color sample vector {right arrow over (C)}_(o) approaches (Y,Y,Y) as α approaches 0. Therefore, the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) becomes a gray value whose gradation level is Y. Note that the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) in equation (6b) is equivalent to that in equation (2b) when α≧1.

[0041]FIG. 6 shows a block diagram of a circuit 40 for performing this example of the second embodiment of the method for color saturation adjustment. The white and color tone separator 42 decomposes the input color vector {right arrow over (C)}=(R,G,B) into a white vector {right arrow over (w)} and a color tone vector {right arrow over (C)}_(T)=(R_(T),G_(T),B_(T)) as described by equation (1). The saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} is obtained using the multiplier 44, which performs the operation {right arrow over (C_(T) ^(o))}=α·{right arrow over (C)}_(T). The minimum value selection circuit 46 obtains the minimum value selected from one and the color saturation adjusting gain α, and provides the result as the gray mixing ratio α_(g). The output signal of the mixer 48 is {right arrow over (Y)}·(1−α_(g))+{right arrow over (w)}·α_(g). The saturation adjusted RGB color sample vector {right arrow over (C)}_(o) is obtained from the adder 50, which adds the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} and the term {right arrow over (Y)}·(1−α_(g))+{right arrow over (w)}·α_(g) obtained from the mixer 48.

[0042]FIG. 7 shows a block diagram of a particular implementation of the circuit 50 for performing the second embodiment of the method for color saturation adjustment. The circuit 50 implements equation (3) to perform the decomposition. The white vector calculation circuit 52 calculates a luminance value Y from the RGB color sample vector {right arrow over (C)} and constructs a white vector {right arrow over (w)}. Each component of the white vector {right arrow over (w)} is equal to the luminance value Y. The vector summer 54 subtracts the white vector {right arrow over (w)} from the RGB color sample vector {right arrow over (C)} to obtain the color tone vector {right arrow over (C_(T))}. The multiplier 56 multiplies the color tone vector {right arrow over (C_(T))} by the color saturation adjusting gain a to obtain the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}. The minimum value selection circuit 58 chooses a minimum value from one and the color saturation adjusting gain α, and provides the result as the gray mixing ratio α_(g). The output signal of the mixer 60 is {right arrow over (Y)}(1−α_(g))+{right arrow over (w)}·α_(g). The saturation adjusted RGB color sample vector {right arrow over (C)}_(o) is obtained from the adder 62, which adds the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} and the term {right arrow over (Y)}·(1−α_(g))+{right arrow over (w)}·α_(g) that is obtained from the mixer 60.

[0043] One common drawback of the first and second embodiments of the method for color saturation adjustment is that a color can be saturated. That is, depending on the degree of the color saturation level of the input sample and the requested value of the color saturation adjusting gain α, the resulting saturation adjusted RGB color vector {right arrow over (C)}_(o)=(R_(o),G_(o),B_(o)) can be mapped to outside the color gamut of the R,G,B signals (i.e., R>255, G>255, and/or B>255). In other words, the saturation adjusted RGB color vector {right arrow over (C)}_(T) ^(o)=α·{right arrow over (C)}_(T) can be saturated depending on the saturation level of {right arrow over (C)}_(T) and α. Hence, an optionally provided feature of the invention is the development of color saturation limiting functions that can be incorporated into the method for color saturation adjustment in an RGB color system.

[0044] We will calculate the magnitude of the color tone vector {right arrow over (C_(T))} and associate this magnitude with the saturation level of the color tone vector {right arrow over (C_(T))}. Remember that the color tone vector {right arrow over (C_(T))} has the components (R_(T),G_(T),B_(T)). We can calculate the magnitude, which we have associated with the saturation level of the color tone vector {right arrow over (C_(T))}, using the following equation:

S({right arrow over (C _(T))})={square root}{square root over (R_(T) ² +G _(T) ² +B _(T) ²)}.  (7)

[0045] We can alternatively approximate the saturation level using the following equation:

S({right arrow over (C _(T))})=|R _(T) |+|G _(T) |+|B _(T)|.  (8a)

[0046] Depending upon the application, various different forms of calculating the saturation level can be defined and the invention should not be limited to any one particular way of calculating this saturation level. For example, some additional ways of calculating the saturation level include:

S({right arrow over (C _(T))})=max(R _(T) ² ,G _(T) ² ,B _(T) ²);  (8b)

S({right arrow over (C _(T))})=max(|R _(T) |,|G _(T) |,|B _(T)|);  (8c) $\begin{matrix} {{{S\left( \overset{\rightarrow}{C_{T}} \right)} = \sqrt{\left( {R_{T}^{2} + G_{T}^{2} + B_{T}^{2}} \right) + \left( {R_{T} - G_{T}} \right)^{2} + \left( {G_{T} - B_{T}} \right)^{2} + \left( {B_{T} - R_{T}} \right)^{2}}};{and}} & \left( {8d} \right) \\ {{S\left( \overset{\rightarrow}{C_{T}} \right)} = {{R_{T}} + {G_{T}} + {B_{T}} + {{R_{T} - G_{T}}} + {{G_{T} - B_{T}}} + {{{B_{T} - R_{T}}}.}}} & \left( {8e} \right) \end{matrix}$

[0047] Thus far, we have disclosed, two embodiments of the method for color saturation adjustment. Examples have been given in equations (3)-(5) of how to decompose the digital RGB color input sample vector {right arrow over (C)}=(R,G,B) into a white vector {right arrow over (w)} and a color tone vector C_(T), however, the invention should not be construed as being limited to these examples of the decomposition. Examples have been given in equations (7) and (8a)-(8e) of how to calculate the saturation level of the color tone vector {right arrow over (C_(T))}, however, as already discussed, the invention should not be construed as being limited to these examples of calculating the saturation level.

[0048] In the following text, four embodiments of a method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} will be disclosed. These embodiments of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} use different forms of the saturation adjustment parameter P. Any one of these embodiments for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} can be used together with the first and second embodiments of the method for color saturation adjustment.

[0049] The first embodiment of the method of calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} includes developing a saturation limiting parameter β that will be multiplied together with α·{right arrow over (C)}_(T) in order to limit the saturation level to a certain level. That is, the saturation adjusted color tone vector C_(T) ^(o) is given as:

{right arrow over (C)} _(T) ^(o) =α·α·{right arrow over (C)} _(T)  (9)

[0050]FIG. 8 shows two multipliers 60 and 62 connected to perform the operation described in equation (9). Accordingly, when using the first embodiment of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} in conjunction with the first embodiment of the method for color saturation adjustment as expressed in equation (2a), we define the saturation adjustment parameter P as being β·α. Similarly, when using the first embodiment of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} in conjunction with the second embodiment of the method for color saturation adjustment as expressed in equation (6a), we define the saturation adjustment parameter P as being β·α.

[0051] Now the question is how to formulate the saturation limiting parameter β. Note that the purpose of multiplying the saturation limiting parameter β with α·{right arrow over (C)}_(T) as expressed in equation (9) is to prevent the saturation level of α·{right arrow over (C)}_(T) from exceeding a certain saturation level.

[0052] If the saturation level S(α·{right arrow over (C)}_(T)) is less than a certain level, which implies that α·{right arrow over (C)}_(T) is “not saturated”, then it is obvious from the purpose of introducing the saturation limiting parameter β that β should be equal to one. Hence, it can be stated that:

β=1 if S(α·{right arrow over (C)} _(T))≦L,  (10)

[0053] where L denotes a pre-determined saturation level to which we want to limit the color saturation level of the adjusted color samples. Hereinafter, L will be referred to as a predetermined limit value. It can be stated that:

{right arrow over (C)} _(T) ^(o) =α·{right arrow over (C)} _(T),  (11)

[0054] when S(α·{right arrow over (C)}_(T))≦L.

[0055] Now in the case when S(α·{right arrow over (C)}_(T))≧L, we need to multiply α·{right arrow over (C)}_(T) and the saturation limiting parameter β together so that the color saturation level of the resulting saturation adjusted color tone vector {right arrow over (C)}_(T) ^(o) can be adjusted as a factor of β in order to prevent a possible saturation. The following constraint is imposed:

S({right arrow over (C)} _(T) ^(o))=L.

[0056] From the definition given in (7) or (8a), for example, it is noted that:

S({right arrow over (C)} _(T) ^(o))=S(β·α·{right arrow over (C)} _(T)).

[0057] We then obtain the following saturation limiting parameter: $\begin{matrix} {\beta = {\frac{L}{S\left( {\alpha \cdot {\overset{\rightarrow}{C}}_{T}} \right)}.}} & (12) \end{matrix}$

[0058] In summary, the saturation adjustment parameter P is chosen to be the color saturation adjusting gain α multiplied by the saturation limiting parameter β. The saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} is then calculated according to the following equation:

{right arrow over (C)} _(T) ^(o) =β·α·{right arrow over (C)} _(T),  (13)

[0059] where $\begin{matrix} {\beta = \left\{ \begin{matrix} 1 & {if} & {{S\left( {\alpha \cdot {\overset{\rightarrow}{C}}_{T}} \right)} \leq L} \\ \frac{L}{S\left( {\alpha \cdot {\overset{\rightarrow}{C}}_{T}} \right)} & {else} & \quad \end{matrix} \right.} & (14) \end{matrix}$

[0060]FIG. 9 shows a block diagram of a circuit 70 for performing the first embodiment of the method of calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}. The multiplier 72 multiplies the color tone vector {right arrow over (C_(T))} by the color saturation adjusting gain α. The saturation calculation circuit 74 calculates the saturation level S(α·{right arrow over (C)}_(T)) and the β-selection circuit 76 chooses the value of the saturation limiting parameter β in accordance with equation (14). The saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} is obtained from the multiplier 78, which multiplies β and α·{right arrow over (C)}_(T).

[0061] A second embodiment of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} will now be developed. If we note that S(α·{right arrow over (C)}_(T))=α·S({right arrow over (C)}_(T)) and combine it with equations (13) and (14), we obtain:

{right arrow over (C)} _(T) ^(o) =r·{right arrow over (C)} _(T)  (15)

[0062] where: $\begin{matrix} {r = \left\{ \begin{matrix} \alpha & {if} & {{S\left( {\overset{\rightarrow}{C}}_{T} \right)} \leq \frac{L}{\alpha}} \\ \frac{L}{S\left( {\overset{\rightarrow}{C}}_{T} \right)} & {eles} & \quad \end{matrix} \right.} & (16) \end{matrix}$

[0063] The result obtained when using equations (15) and (16) to calculate the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} is equivalent to the result obtained when using equations (13) and (14). Note, however, when equations (15) and (16) are used to calculate the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}, less computation is required than when using equations (13) and (14). Accordingly, when using the second embodiment of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} in conjunction with the first embodiment of the method for color saturation adjustment as expressed in equation (2a), or the second embodiment of the method for color saturation adjustment as expressed in equation (6a), we define the saturation adjustment parameter P as being r.

[0064]FIG. 10 shows a block diagram of a circuit 80 for performing the second method of calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}. The saturation calculation circuit 82 calculates the saturation level S({right arrow over (C)}_(T)) and the r-selection circuit 84 chooses the value of r in accordance with equation (16). The saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} is obtained from the multiplier 86, which multiplies r and {right arrow over (C)}_(T).

[0065] A third embodiment of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} will now be developed. The saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} can be expressed according to the following equation:

{right arrow over (C)} _(T) ^(o) =x·{right arrow over (C)} _(T),  (17)

[0066] where x denotes a real color adjusting gain defined by: $\begin{matrix} {x = \left\{ \begin{matrix} \alpha & {if} & {0 \leq \alpha \leq 1} \\ {f\left( {S\left( {\overset{\rightarrow}{C}}_{T} \right)} \right)} & {if} & {\alpha > 1} \end{matrix} \right.} & (18) \end{matrix}$

[0067] The mathematical function ƒ(S({right arrow over (C)}_(T))) can be any function that satisfies the following conditions:

[0068] ƒ(S({right arrow over (C)}_(T))) is a monotonically decreasing function with respect to S({right arrow over (C)}_(T)) for 0≦S({right arrow over (C)}_(T))≦L where L is a pre-determined constant limit value;

[0069] ƒ(0)=α; and

[0070] ƒ(S({right arrow over (C)}_(T)))=1 for S({right arrow over (C)}_(T))≧L.

[0071] Note that the last condition ensures no change is made in the color saturation level of the input sample when its color saturation level exceeds a certain level even though the color saturation adjusting gain is large (α>1). Examples of ƒ(S({right arrow over (C)}_(T))) are shown in FIGS. 11, 12, and 13. For instance, in FIG. 11, x=ƒ(S({right arrow over (C)}_(T))) for 0≦S({right arrow over (C)}_(T))≦L can be expressed as: $x = {1 + {\left( {\alpha - 1} \right) \cdot {\frac{\left( {L - {S\left( {\overset{\rightarrow}{C}}_{T} \right)}} \right) \cdot \left( {L + {S\left( {\overset{\rightarrow}{C}}_{T} \right)}} \right)}{L^{2}}.}}}$

[0072] Because of the constraints on ƒ(S({right arrow over (C)}_(T))), when S({right arrow over (C)}_(T))≧L, the real color adjusting gain x becomes: $x = \left\{ \begin{matrix} \alpha & {if} & {0 \leq \alpha \leq 1} \\ 1 & {if} & {\alpha > 1} \end{matrix} \right.$

[0073] When using the third embodiment of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} in conjunction with the first embodiment of the method for color saturation adjustment as expressed in equation (2a) or with the second embodiment of the method for color saturation adjustment as expressed in equation (6a), we define the saturation adjustment parameter P as being the real color adjusting gain x.

[0074]FIG. 14 shows a block diagram of a circuit 90 for performing the third embodiment of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}. The saturation calculation circuit 92 calculates the saturation level S({right arrow over (C)}_(T)). The circuit 94 for calculating ƒ(S({right arrow over (C)}_(T))) evaluates ƒ(S({right arrow over (C)}_(T))) at the saturation level S({right arrow over (C)}_(T)). The real color adjusting gain circuit 96 chooses the value of x in accordance with equation (18). The saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} is obtained from the multiplier 98, which multiplies x and {right arrow over (C)}_(T).

[0075] A fourth embodiment of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} will now be developed. We will limit the saturation level of the saturation adjusted color tone vector {right arrow over (C)}_(T) ^(o)=x·{right arrow over (C)}_(T) such that:

S({right arrow over (C)} _(T))=x·S({right arrow over (C)} _(T))≦L

[0076] When S({right arrow over (C)}_(T))≦L and α>1, the following condition is obtained: $\begin{matrix} {x \leq \frac{L}{S\left( {\overset{\rightarrow}{C}}_{T} \right)}} & (19) \end{matrix}$

[0077] By combining equations (18) and (19), we obtain the following relationship for the real color adjusting gain: $\begin{matrix} {x = \left\{ {\begin{matrix} \alpha & {if} & {0 \leq \alpha \leq 1} & \quad & \quad \\ {\min \left( {{f\left( {S\left( {\overset{\rightarrow}{C}}_{T} \right)} \right)},\frac{L}{S\left( {\overset{\rightarrow}{C}}_{T} \right)}} \right)} & {if} & {\alpha > 1} & {and} & {{S\left( {\overset{\rightarrow}{C}}_{T} \right)} \leq L} \\ 1 & {if} & {\alpha > 1} & {and} & {{S\left( {\overset{\rightarrow}{C}}_{T} \right)} > L} \end{matrix}.} \right.} & (20) \end{matrix}$

[0078] When using the fourth embodiment of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} in conjunction with the first embodiment of the method for color saturation adjustment as expressed in equation (2a) or with the second embodiment of the method for color saturation adjustment as expressed in equation (6a), we define the saturation adjustment parameter P as being the real color adjusting gain x.

[0079]FIG. 15 is a flowchart illustrating the steps used to implement the fourth embodiment of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} in accordance with equations (17) and (20). In step 1, the color saturation adjusting gain α and the color tone vector {right arrow over (C_(T))} are acquired. In step 2, it is determined whether the color saturation adjusting gain α is equal to or less than 1. If so, the real color adjusting gain x is set equal to α in step 9. If the color saturation adjusting gain α is not equal to or less than 1, then in step 3, the saturation level of the color tone vector {right arrow over (C_(T))} is determined. In step 4, it is determined whether the saturation level of the color tone vector {right arrow over (C_(T))} is greater than the predetermined limit L. If the saturation level of the color tone vector {right arrow over (C_(T))} is greater than the predetermined limit L, then in step 5, the real color adjusting gain x is set equal to 1. If the saturation level of the color tone vector {right arrow over (C_(T))} is not greater than the predetermined limit L, then in step 6, a first value is obtained by evaluating the mathematical function ƒ at the value of the saturation level of the color tone vector {right arrow over (C_(T))}, and a second value is obtained by dividing the predetermined limit L by the saturation level of the color tone vector {right arrow over (C_(T))}. Additionally in step 6, a minimum value is selected from the first value and the second value and the real color adjusting gain x is set equal to this minimum value. As can be seen in FIG. 15, step 7 can follow either step 9, 5, or 6. In step 7, a saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} is obtained by multiplying the real color adjusting gain x with the color tone vector {right arrow over (C_(T))}. The saturation adjusted color tone vector {right arrow over (C_(T))} can then be used in equation (2a) to perform the first embodiment of the method for color saturation adjustment, or in equation (6a) to perform the second embodiment. Step 8 causes the procedure to loop back to step 1 to obtain the next color tone vector {right arrow over (C_(T))}, which may represent another pixel of the same input image, or which may possibly represent the first pixel of a subsequent input image.

[0080] A circuit for performing the fourth embodiment of the method for calculating the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} can be constructed similarly to the circuit 90 shown in FIG. 14. The difference will be that the real color adjusting gain circuit 96 will choose the value of x in accordance with equation (20). 

I claim:
 1. A method for adjusting a color saturation level of at least one color pixel of an input image obtained from a time varying RGB video signal, which comprises: obtaining an RGB color sample vector {right arrow over (C)} representing the color pixel of the input image obtained from the time varying RGB video signal; decomposing the RGB color sample vector {right arrow over (C)} into a white vector {right arrow over (w)} and a color tone vector {right arrow over (C)}_(T); obtaining a saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} by multiplying the color tone vector {right arrow over (C)}_(T) by a saturation adjustment parameter; obtaining a saturation adjusted RGB color sample vector {right arrow over (C)}_(o) by adding the white vector {right arrow over (w)} and the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}; and using the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) to represent a color pixel of an output image.
 2. The method according to claim 1, which comprises: defining a luminance vector {right arrow over (Y)} where each component of the luminance vector {right arrow over (Y)} is a luminance value obtained from the RGB color sample vector {right arrow over (C)}; configuring the saturation adjustment parameter to include at least a color saturation adjusting gain α; obtaining a gray mixing ratio α_(g) by selecting a minimum value from the group consisting of one and the color saturation adjusting gain α; obtaining a gray level adjusted vector by multiplying the luminance vector {right arrow over (Y)} by a quantity obtained by subtracting the gray mixing ratio α_(g) from one; and performing the step of obtaining the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) by: before adding the white vector {right arrow over (w)} and the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}, multiplying the white vector {right arrow over (w)} by the gray mixing ratio α_(g), and when adding the white vector {right arrow over (w)}, which has been multiplied by the gray mixing ratio α_(g), and the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}, also adding thereto, the gray level adjusted vector to obtain the saturation adjusted RGB color sample vector {right arrow over (C)}_(o).
 3. The method according to claim 1, which comprises: acquiring a saturation adjusting gain α; and using the saturation adjusting gain α as the saturation adjustment parameter.
 4. The method according to claim 1, which comprises: acquiring a saturation adjusting gain α; determining a saturation level S(α·{right arrow over (C_(T))}) of a quantity obtained by multiplying the saturation adjusting gain α by the color tone vector {right arrow over (C_(T))}; and if the saturation level S(α·{right arrow over (C_(T))}) is greater than a predetermined limit value L, then: obtaining a saturation limiting parameter β by dividing the predetermined limit value L by the saturation level S(α·{right arrow over (C_(T))}) and obtaining the saturation adjustment parameter by multiplying the saturation adjusting gain α by the saturation limiting parameter β.
 5. The method according to claim 4, which comprises: if the saturation level S(α·{right arrow over (C_(T))}) is not greater than the predetermined limit value L, then: setting the saturation limiting parameter β equal to one, and obtaining the saturation adjustment parameter by multiplying the saturation adjusting gain α by the saturation limiting parameter β.
 6. The method according to claim 4, which comprises: if the saturation level S(α·{right arrow over (C_(T))}) is not greater than the predetermined limit value L, then using the saturation adjusting gain a as the saturation adjustment parameter.
 7. The method according to claim 1, which comprises: acquiring a saturation adjusting gain α; determining a saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))}; if the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))} is not greater than a predetermined limit value L divided by the saturation adjusting gain α, then using the saturation adjusting gain α as the saturation adjustment parameter; and if the saturation level S({right arrow over (C_(T))}) is greater than the predetermined limit value L divided by the saturation adjusting gain α, then setting the saturation adjustment parameter equal to a value obtained by dividing the predetermined limit value L by the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))}.
 8. The method according to claim 1, which comprises: acquiring a saturation adjusting gain α; and if the saturation adjusting gain α is not less than zero and not greater than one, then using the saturation adjusting gain α as the saturation adjustment parameter that is multiplied by the color tone vector {right arrow over (C)}_(T) to thereby set a saturation level of the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}.
 9. The method according to claim 8, which comprises: selecting a mathematical function that is a monotonically decreasing function with respect to an argument as the argument varies between zero and a predetermined limit value L; ensuring that when the mathematical function is evaluated using an argument that equals zero, the mathematical function equals the saturation adjusting gain α; ensuring that when the mathematical function is evaluated at values of the argument being not less than the predetermined limit value L, the mathematical function equals one; and if the saturation adjusting gain α is greater than one, then: determining a saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C)}_(T), using the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C)}_(T) as the argument and evaluating the mathematical function to obtain a value of the mathematical function, and using the value of the mathematical function as the saturation adjustment parameter that is multiplied by the color tone vector {right arrow over (C)}_(T) to thereby set the saturation level of the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}.
 10. The method according to claim 8, which comprises: determining a saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C)}_(T); and if the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C)}_(T) is not less than a predetermined limit value L and if the saturation adjusting gain α is greater than one, then: setting the saturation adjustment parameter that is multiplied by the color tone vector {right arrow over (C)}_(T) to a value of one to thereby set the saturation level of the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}.
 11. The method according to claim 8, which comprises: selecting a mathematical function that is a monotonically decreasing function with respect to an argument as the argument varies between zero and a predetermined limit value L; ensuring that when the mathematical function is evaluated using an argument that equals zero, the mathematical function equals the saturation adjusting gain α; ensuring that when the mathematical function is evaluated at values of the argument being not less than the predetermined limit value L, the mathematical function equals one; determining a saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C)}_(T); if the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C)}_(T) is not greater than the predetermined limit value L and if the saturation adjusting gain α is greater than one, then: using the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C)}_(T) as the argument and evaluating the mathematical function to obtain a value of the mathematical function, selecting a minimum value from the group consisting of the value of the mathematical function, evaluated using the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C)}_(T), and a value obtained from dividing the predetermined limit value L by the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C)}_(T), and setting the saturation adjustment parameter that is multiplied by the color tone vector {right arrow over (C)}_(T) to be equal to the minimum value such that the saturation level of the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))} is thereby set; and if the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C)}_(T) is greater than the predetermined limit value L and if the saturation adjusting gain α is greater than one, then: setting the saturation adjustment parameter that is multiplied by the color tone vector {right arrow over (C)}_(T) to be equal to one to thereby set the saturation level of the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}.
 12. The method according to claim 1, which comprises: before performing the step of obtaining the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}, determining a saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))}, and choosing a value of the saturation adjustment parameter in dependence on the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))}.
 13. The method according to claim 12, which comprises: determining the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))} by estimating a magnitude of the color tone vector {right arrow over (C_(T))}.
 14. The method according to claim 12, which comprises: representing the color tone vector {right arrow over (C_(T))} with components (R_(T),G_(T),B_(T)); and determining the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))} using formula: S({right arrow over (C_(T))})={square root}{square root over ( R _(T) ² +G _(T) ² +B _(T) ²)}.
 15. The method according to claim 12, which comprises: representing the color tone vector {right arrow over (C_(T))} with components (R_(T),G_(T),B_(T)); and determining the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))} using formula: S({right arrow over (C_(T))})=| R _(T) |+|G _(T) |+|B _(T)|.
 16. The method according to claim 12, which comprises: representing the color tone vector {right arrow over (C_(T))} with components (R_(T),G_(T),B_(T)); and determining the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))} using formula: S({right arrow over (C _(T))})=max(R _(T) ² , G _(T) ² , B _(T) ²).
 17. The method according to claim 12, which comprises: representing the color tone vector {right arrow over (C_(T))} with components (R_(T),G_(T),B_(T)); and determining the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))} using formula: S({right arrow over (C _(T))})=max(|R _(T) |,|G _(T) |,|B _(T)|).
 18. The method according to claim 12, which comprises: representing the color tone vector {right arrow over (C_(T))} with components (R_(T), G_(T), B_(T)); and determining the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))} using formula: S({right arrow over (C _(T))})={square root}{square root over ((R _(T) ² +G _(T) ² +B _(T) ²)+(R _(T) −G _(T))²+(G _(T) −B _(T))²+(B _(T) −R _(T))²)}.
 19. The method according to claim 12, which comprises: representing the color tone vector {right arrow over (C_(T))} with components (R_(T), G_(T), B_(T)); and determining the saturation level S({right arrow over (C_(T))}) of the color tone vector {right arrow over (C_(T))} using formula: S({right arrow over (C _(T))})=|R _(T) |+|G _(T) |+|B _(T) |+|R _(T) −G _(T) |+|G _(T) −B _(T) |+|B _(T) −R _(T)|.
 20. The method according to claim 1, which comprises: performing the step of decomposing the RGB color sample vector {right arrow over (C)} by: representing the RGB color sample vector {right arrow over (C)} with components (R,G,B); calculating a luminance value Y from the RGB color sample vector {right arrow over (C)}, determining the white vector {right arrow over (w)} according to equation: {right arrow over (w)}=(Y,Y,Y), and determining the color tone vector {right arrow over (C)}_(T) according to equation: {right arrow over (C)}_(T)=(R−Y,G−Y,B−Y).
 21. The method according to claim 1, which comprises: performing the step of decomposing the RGB color sample vector {right arrow over (C)} by: representing the RGB color sample vector {right arrow over (C)} with components (R,G,B); determining the white vector {right arrow over (w)} according to equation: {right arrow over (w)}=(X,X,X), where X=3/R+G+B, and determining the color tone vector {right arrow over (C)}_(T) according to equation: {right arrow over (C)}_(T)=(R−X,G−X,B−X).
 22. The method according to claim 1, which comprises: performing the step of decomposing the RGB color sample vector {right arrow over (C)} by: representing the RGB color sample vector {right arrow over (C)} with components (R,G,B); determining the white vector {right arrow over (w)} according to equation: {right arrow over (w)}=(X,X,X), where ${\overset{\rightarrow}{w} = \left( {\frac{G + B}{2},\frac{R + B}{2},\frac{R + G}{2}} \right)},$

 and determining the color tone vector {right arrow over (C)}_(T) according to equation: ${\overset{\rightarrow}{C}}_{T} = {\left( {{R - \frac{G + B}{2}},{G - \frac{R + B}{2}},{B - \frac{R + G}{2}}} \right).}$


23. The method according to claim 1, which comprises: defining a luminance vector {right arrow over (Y)} where each component of the luminance vector {right arrow over (Y)} is a luminance value obtained from the RGB color sample vector {right arrow over (C)}; acquiring a color saturation adjusting gain α; obtaining a gray mixing ratio α_(g) by selecting a minimum value from the group consisting of one and the color saturation adjusting gain α; obtaining a gray level adjusted vector by multiplying the luminance vector {right arrow over (Y)} by a quantity obtained by subtracting the gray mixing ratio α_(g) from one; and performing the step of obtaining the saturation adjusted RGB color sample vector {right arrow over (C)}_(o) by: before adding the white vector {right arrow over (w)} and the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}, multiplying the white vector {right arrow over (w)} by the gray mixing ratio α_(g), and when adding the white vector {right arrow over (w)}, which has been multiplied by the gray mixing ratio α_(g), and the saturation adjusted color tone vector {right arrow over (C_(T) ^(o))}, also adding thereto, the gray level adjusted vector to obtain the saturation adjusted RGB color sample vector {right arrow over (C)}_(o). 